package com.adtech.core.schedule.job;

import java.io.File;

/**
 * 清理临时目录的调度作业
 *
 * @since 2011-11-30
 * @author Dormin
 *
 * @Copyright (C) AD Tech Workshop All Right Reserved
 */
public class CleanFolderJob {

	//文件存活小时数
	private int hour;
	//要清理的文件夹
	private String path;

	public void clean(){
		emptyTempFolder(new File(path));
	}

	/**
	 * 清空临时文件夹
	 * @param temp 临时文件夹对象
	 *
	 * @author Dormin
	 */
	public void emptyTempFolder(File temp){
		if (!temp.exists()){
			return;
		}

		//删除文件夹下的所有文件
		for (File child : temp.listFiles()){
			if (!child.isDirectory()){
				//文件
				long now = System.currentTimeMillis();
				long modified = child.lastModified();

				//仅删除上次修改时间在N小时前的文件
				if (now - modified > 1000 * 60 * 60 * hour) {
					child.delete();
				}
			} else {
				//删除文件夹下的所有文件，保留文件夹而不做删除
				emptyTempFolder(child);
			}
		}
	}

	public void setPath(String path) {
		this.path = path;
	}

	public void setHour(int hour) {
		this.hour = hour;
	}
}
